Facilitating event implementation in an online game

ABSTRACT

A system and method for facilitating implementation of events in an online game are disclosed. Award information may be received from user. The received award information may define a type of in-game award to be distributed to players of the online game. The award information may include information indicate a corresponding award handler for determine and/or distributing the instances of the award to the players. Event information may be received from user. The received event information may specify details for implementing an event in the online game. The received event information may include event award information indicating one or more instances of an award of an award type defined by the received award information. The event information may be used to automatically implement the event in the online game, and the instances of the award may be distributed to the participating players in accordance with the event award information.

FIELD OF THE DISCLOSURE

This disclosure relates to providing and implementing an online game onindividual client devices, in particular facilitating eventimplementation in the online game.

BACKGROUND

Game scripting languages that enable programmers and/or non-programmersalike to develop a new game for to customize an existing game isgenerally known in the art. Some game scripting languages allow users tocreate and populate data structures that are later consumed by the gameengine. Such game scripting languages are often declarative and areeither executed or parsed offline or at runtime when the data is loadedinto memory. Some game scripting languages are intended to be executedwithin the context of the game engine at runtime. These languages areusually used to extend or customize the hard-coded functionality of thegame engine's game object model and/or other game engine systems. Someexamples of game scripting languages are QuakeC, unrealScript, Lua, andPython.

Some scripting languages allow game object types that have beenimplemented in the native language to be extended via script. Callbacksand event handlers are examples of this. An event handler is typically aspecial type of hook function whose purpose is to allow a game object torespond to some relevant occurrence within the game world (e.g.,responding to an explosion going off) or within the engine itself (e.g.,responding to an out-of-memory condition). Many game engines allow usersto write event handler hooks in script as well as in the nativelanguage.

SUMMARY

One aspect of the disclosure relates to facilitating implementation ofevents within an online game. Interfaces may be provided on clientdevices to enable users to provide award types such that instances ofawards of user provided award types may be distributed to players withinthe online game. An award handler corresponding to a given award typeprovided by the user(s) may be stored and invoked by a game engine,and/or other components that execute scripts or functions of the onlinegame to distribute instances of the awards of the award type to playerswithin the online game. Similarly, intuitive interfaces may be providedon client devices to enable the users to create or modify events forimplementation in the online game. Such interfaces may enable the usersto provide event information such that the game engine, and/orcomponents that execute scripts or functions of the online game s mayautomatically implement the events in accordance with the eventinformation provided by the users. When providing event information fora given event, the users may be enabled by the interfaces to specify oneor more instances of awards of the award types provided by the users asevent awards to be distributed to the players participating in the givenevent, to specify award requirements for distributing the instances ofthe awards, and/or any other operations. In some examples, an eventhandler corresponding to a given event provided by the user(s) may bestored, and may include scripts or functions for implementing the givenevent. Such scripts or functions may be executed by the game engine forimplementing the event within the online game automatically. This mayfacilitate developing and/or implementing the online game by userswithout requiring the users to recompile or redeploy the online game.

In some implementations, a system configured to facilitateimplementation of events within an online game may include one or moreservers, which may comprise one or more processors configured to executemachine-readable instructions. The one or more processors may comprise agame engine, an event controller, a messenger daemon, a delivery daemon,an event interface component, an event information component, an awardinterface component, an award information component, and/or any othercomponents.

The game engine may be configured to execute user actions to facilitateinteraction of the users with the online game and/or each other inresponse to receiving online game commands input by the users. Withinthe instance of the online game executed by the game engine, awards maybe distributed to players. The distributed awards may induce changes tothe online game state or other game related effects that make othergoals easier to complete. Within the instance of the online gameexecuted by game engine, events may be implemented for participation bythe players. Typically, an event implemented in the online game mayinclude one or more goals, objectives, targets, preset achievements(e.g., player levels), and/or other types of agenda for the players toachieve. Awards may be distributed to players at the end of a givenevent in the online game.

The event controller may be configured to control implementation ofevents in the online game based on event information provided by users.This may involve obtaining the event information from an eventinformation database, determining one or more events are to be startedin the online game, implementing the one or more events in the onlinegame in accordance with the event information by updating the gameinterfaces on the client devices and/or updating one or more online gamedatabases, updating results of event(s) that is currently is in sessionin the online game, ending event(s) that has finished as indicated bythe event information, and/or any other operations. The eventinformation based on which the events may be implemented by eventcontroller may contain various details regarding the individual eventsto be implemented in the online game. In some implementations, the eventinformation regarding a given event may include information indicating acorresponding event handler for implement the given event in the onlinegame. Such an event handler may include a block or blocks of scriptcode. The event controller may be configured to execute scripts,routines, programs, and/or any other type of directives or executablesprovided by provider, administrator, moderator, users, and/or any otherentities related to the online game. The scripts, routines, programsand/or any other type of directives or executables that may be executedby the event controller may be for automatically implementing events inthe online game, distributing and/or determining event awards to playerswithin the online game, and/or for causing the event controller toperform any other operations.

The messenger daemon may be configured to transmit to client devicesmessages regarding the events implemented by the event controller. Insome implementations, the messenger daemon may receive instructions fromthe event controller to transmit messages regarding a specific eventimplemented by the event controller. For example, the messenger daemonmay receive a specific event announcement request from the eventcontroller, and the received request may include the announcementmessage the event controller requests the messenger daemon to transmitto the client devices.

The delivery daemon may be configured to determine and/or distributeawards for the players participating in the events implemented by theevent controller. This may involve instantiating Awards of correspondingaward types, distributing the instances of the awards to the inventoryof players, recording the awards that have been distributed to theplayers, and/or any other operations. In some implementations, thedelivery daemon may determine and/or distribute awards to individualplayers based on award information regarding individual types of awards,which may be obtained from an event information database, a gamedatabase, and/or any kind of electronic storage related to the onlinegame. In some implementations, the award information regarding a giventype of award may include information indicating a corresponding awardhandler. Such an award handler may include a block or blocks of scriptcode. For example, the award handler may be used by the delivery daemonto control award determination and/or distribution of instances of theaward of the given type. The delivery daemon may be invoked by the eventcontroller when implementing a given event to distribute one or moreevent awards to inventories of the players based on their rankings atthe end of the event.

The event interface component may be configured to provide an interfaceon a client device enabling a player associated with the client deviceto provide event information, which may be used by the event controllerto implement events in the online game.

The event information management component may be configured to manageevent information provided by the users of the online game. Managingevent information by the event information management component mayinclude storing, retrieving, updating, deleting, backing up the eventinformation provided by the users, and/or any other operations.

The award interface component may be configured to provide awardinterfaces on client devices to enable users to provide informationregarding awards to be distributed within the online game.

The award information management component may be configured to manageaward information provided by the users of the online game. Managingaward information by the award information management component mayinclude storing, retrieving, updating, deleting, backing up the awardinformation provided by the users, and/or any other operations. Forexample, the award information management component may be configured toretrieve award information in response to a request from the evencontroller and/or the delivery daemon as described above.

These and other features and characteristics of the present technology,as well as the methods of operation and functions of the relatedelements of structure and the combination of parts and economies ofmanufacture, will become more apparent upon consideration of thefollowing description and the appended claims with reference to theaccompanying drawings, all of which form a part of this specification,wherein like reference numerals designate corresponding parts in thevarious figures. It is to be expressly understood, however, that thedrawings are for the purpose of illustration and description only andare not intended as a definition of the limits of the invention. As usedin the specification and in the claims, the singular form of “a”, “an”,and “the” include plural referents unless the context clearly dictatesotherwise.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates one example of a system configured to facilitateimplementation of events within an online game in accordance with thedisclosure in accordance with the disclosure.

FIG. 2 is an exemplary block diagram illustrating event controller shownin FIG. 1 may be configured to invoke an event handler for acorresponding event to be implemented in the online game.

FIG. 3 is an exemplary block diagram illustrating delivery daemon may beconfigured to invoke award handler for a corresponding award.

FIG. 4 is an exemplary block diagram illustrating event controller shownin FIG. 1 may be configured to invoke the event handlers shown in FIG. 2and the delivery daemon shown in FIG. 3 .

FIG. 5 illustrates one example an interface that may be provided on aclient device for providing the event information.

FIG. 6 illustrates an exemplary interface that may be provided on aclient device to enable a user to provide award information for an event

FIG. 7 illustrates one exemplary method 700 for facilitatingimplementation of events within an online game in accordance with thedisclosure in accordance with the disclosure.

DETAILED DESCRIPTION

FIG. 1 illustrates one example of a system 100 configured to facilitateimplementation of events within an online game in accordance with thedisclosure. In some implementations, as shown in this example, system100 may include a server 120 configured to host the online game, aserver 102 configured to manage and/or provide information forimplementing events in the online game, and/or any other servers. Asshown, the server 102 may communicate with one or more client computingplatforms 104 according to a client/server architecture. The users mayaccess system 100 via client computing platforms 104. As shown, server102 may comprise processors 122 configured to execute computer-readableinstructions to implement system components. The computer programcomponents may include one or more of a game engine 124, an eventcontroller 126, a messenger daemon 128, a delivery daemon 130, and/orother components.

The game engine 124 may be configured to execute an instance of theonline game. The instance of the online game executed by the game engine124 may be implemented by client computing platforms 104 forpresentation to and interaction by the users of the online game. Withinthe instance of the online game executed by the game engine 124, usersmay interact with elements in the online game and/or with each otherthrough gameplays provided by the online game. The gameplays may includerole-playing, first-person shooter, real-time strategy, turn-basedstrategy, simulation, music or rhythm playing, card playing, board game,social interaction, twitching, and/or any other gameplays. The executionof the instance of the online game by game engine 124 may includedetermining a state associated with the online game. The state may becommunicated (e.g., via streaming visual data, object/position data,and/or other state information) from server 102 to client computingplatforms 104 for presentation to users. The state determined andtransmitted to a given client computing platform 104 may correspond to aview for a user character being controlled by a user via the givenclient computing platform 104. The state determined and transmitted to agiven client computing platform 104 may correspond to a location in aonline game associated with the online game. The view described by thestate for the given client computing platform may correspond, forexample, to the location from which the view is taken, the location theview depicts and/or other locations, a zoom ratio, a dimensionality ofobjects, a point-of-view, and/or view parameters of the view. One ormore of the view parameters may be selectable by the user.

The instance of the online game may be persistent. That is, the onlinegame may continue on whether or not individual users are currentlylogged in and/or participating in the online game. A user that logs outof the online game and then logs back in some time later may find theonline game associated with the online game has been changed through theinteractions of other users with the online game during the time theuser was logged out. These changes may include changes to the simulatedphysical space, changes in the user's inventory, changes in other users'inventories, changes experienced by non-user characters, and/or otherchanges.

The instance of the online game may comprise a simulated online game,e.g., a online game that is accessible by users via clients (e.g.,client computing platforms 104) that present the views of the onlinegame to a user. The online game may have a topography, express ongoingreal-time interaction by one or more users, and/or include one or moreobjects positioned within the topography that are capable of locomotionwithin the topography. In some instances, the topography may be atwo-dimensional topography. In other instances, the topography may be athree-dimensional topography. The topography may include dimensions ofthe space and/or surface features of a surface or objects that are“native” to the space. In some instances, the topography may describe asurface (e.g., a ground surface) that runs through at least asubstantial portion of the space. In some instances, the topography maydescribe a volume with one or more bodies positioned therein (e.g., asimulation of gravity-deprived space with one or more celestial bodiespositioned therein). The instance executed by the computer componentsmay be synchronous, asynchronous, and/or semi-synchronous.

The instance of the online game may comprise online game entitiesautomatically controlled in the instance of the online game. Such onlinegame entities may not be associated with any user. As such, theautomatically controlled online game entities may be generated and/ordeveloped by artificial intelligence configured with the server 102 byprovider(s), administrator(s), moderator(s), and/or any other entitiesrelated to the online game. These automatically controlled entities mayevolve within the online game associated with the online game free fromuser controls and may interact with the entities controlled by orassociated with the users, other automatically controlled online gameentities, as well as the topography of the online game. Certainmanifested traits may be associated with the automatically controlledentities in accordance with the artificial intelligence configured withthe server 102.

The above description of the manner in which the state of the onlinegame associated with the online game as determined by game engine 124 isnot intended to be limiting. The game engine 124 may be configured toexpress the online game in a more limited, or richer, manner. Forexample, views determined for the online game representing the state ofthe instance of the online game may be selected from a limited set ofgraphics depicting an event in a given place within the online game. Theviews may include additional content (e.g., text, audio, pre-storedvideo content, and/or other content) that describes particulars of thecurrent state of the place, beyond the relatively generic graphics. Forexample, a view may include a generic battle graphic with a textualdescription of the opponents to be confronted. Other expressions ofindividual places within the online game are contemplated. As anotherexample, the online game may be simply expressed as a background forcard playing actions, e.g., simple art depicting a table top. As yetanother example, the online game may be expressed as a game board onwhich game pieces associated with the users may be moved.

Within the instance of the online game executed by game engine 124, theusers may participate in the instance of the online game by controllingone or more of an element in the online game associated with the onlinegame. The user-controlled elements may include avatars, online gamecharacters, online game units (e.g., troops), objects (e.g., weapons,horses, vehicle and so on), simulated physical phenomena (e.g., wind,rain, earthquakes, and/or other phenomena), and/or other user-controlledelements. The user-controlled avatars may represent the users in theonline game. The user characters may include heroes, knights,commanders, leaders, generals, and/or any other online game entitiesthat may possess strength, skills, abilities, magic powers, knowledge,and/or any other individualized attributes. The online game unitscontrolled by the user may include troops and/or any other online gameentities that may be trained, recruited, captured, and/or otherwiseacquired by the users in groups or en-mass. The objects controlled bythe users may include weapons, vehicles, projectiles, magic items,wardrobes, boots, armor, knapsacks, medicine, healing potions, and/orany other virtual items that may be employed by the users forinteraction within the online game.

In any case, the user-controlled elements may move through and interactwith the online game (e.g., the automatically controlled entities,elements controlled by other users, and/or topography in the onlinegame) associated with the online game. The elements controlled by agiven user may be created and/or customized by the given user. The givenuser may have an “inventory” of virtual goods and/or currency usablewithin the online game.

Controls of virtual elements in the online game may be exercised throughcommands inputted by a given user through client computing platforms104. The given user may interact with other users through communicationsexchanged within the online game. Such communications may include one ormore of textual chat, instant messages, private messages, voicecommunications, and other communications (if any). Communications may bereceived and entered by the users via their respective client computingplatforms 104. Communications may be routed to and from the appropriateusers through server 102 (e.g., through game engine 124).

A given user may input commands with specific parameters to undertakespecific deeds, actions, functions, spheres of actions, and/or any othertypes of interactions within the online game. For example, the givenuser may input commands to construct, upgrade, and/or demolish virtualbuildings; harvest and/or gather virtual resources; heal virtualuser-controlled elements, automatically controlled entities, and/orelements controlled by other users; train, march, transport, reinforce,reassign, recruit, and/or arrange troops; attack, manage, create,demolish, and/or defend cities, realms, kingdoms, and/or any otheronline game locations controlled by or associated with the users; craftor transport virtual items; interact with and/or compete against oralong with non-user entities and/or online game elements controlled byother users in combats; research technologies and/or skills; mine and/orprospect for virtual resources; complete missions, quests, and/orcampaigns; exercise magic power and/or cast spells; draw and/or dealcards; move pieces on a game board; and/or perform any other specificdeeds, actions, functions, or sphere of actions within the online game.In some examples, the given user may input commands to compete againstelements in an environment within the online game—i.e., User vs.Environment (PvE) activities. In some examples, the given user may inputcommands to compete against each other within the online game—i.e., Uservs. User (PvP) activities.

The game engine 124 may be configured to execute user actions tofacilitate interaction of the users with the online game and/or eachother in response to receiving online game commands input by the users.Execution of the user action by the game engine 124 may produce changesto the game state, which may reflect progression and/or results of theuser actions. In some examples, state changes caused by the execution ofthe user actions may be recorded in the electronic storage 110 tofacilitate persistency throughout the instance of the online game. Insome examples, execution of the user actions may not produce persistentchanges to the game state (e.g., a user character jumping forward andbackward successively may not produce any perceivable game state changesto other users).

Within the instance of the online game, virtual currencies may beprovided to store and/or exchange of online game values. Units of thevirtual currencies (for example, gold, gem, silver, coin, token, and/orany other types of virtual currencies) may reflect online game values asdetermined by a provider, administrator, moderator, user, and/or anyother entities related to the online game. Through one or more units ofvirtual currencies, online game values may be captured, stored, andcirculated in the online game. As one non-limiting example, combinationsof user actions, skills, virtual items, time, and/or any other onlinegame elements may be captured, stored, and circulated through virtualcurrencies to reflect online game values created by user labor ininteracting with the online game. For instance, a user may be provided1,000 gems after prospecting and mining for the gems in the online gamefor a period of time with certain required mining equipment operableonly by a skilled online game miner, which the user has expanded laborto become.

Within the instance of the online game executed by the game engine 124,virtual currencies may be collected, earned, purchased, gifted, orotherwise acquired by the users. For example, the users may purchase thevirtual currencies with real-world money consideration (e.g., creditpayment through credit card, electronic vouchers provided by theprovider of the online game, physical tokens, and/or any other types ofreal-world currencies) through a virtual store. The users may earn thevirtual currencies, for example through gameplays provided in the onlinegame (e.g., PvP activities, PvE activities, in-game tournaments, tasks,quests, missions, and/or any other gameplays in the online game). By wayof non-limiting example, a given user may earn a predetermined amount ofvirtual currencies after completing an in-game task in the online game.In some examples, the provider of the online game may simply make acertain amount of virtual currencies available to the users, forinstance through treasure troves in the online game such that the usersmay gratuitously collect the virtual currencies by exploring for thetreasure troves. In some other examples, the users may acquire virtualcurrencies by receiving gifts that comprise virtual currencies fromother users. One of ordinary skills in the art will appreciate thatthere are other ways for the users to acquire virtual currencies in theonline game.

Within the instance of the online game executed by the game engine 124,resources may be, for example, generated, cultivated, mined, harvested,purchased, earned, consumed, traded, and/or gifted over time by units,characters, pets, buildings, facilities, and/or any other infrastructureor entity in the online game for the user. Resources may be prospected.Resources may be virtual items of value that can be accumulated throughparticipation in the online game, rather than virtual currencies thatstore values in the online game as described above. As such, resourcesmay be used to satisfy resource requirements in the online game. By wayof non-limiting examples, online game resources may include food (e.g.,rice, fish, wheat, etc.), minerals (e.g., wood, iron, ore, coal, oil,stone, crystal, etc.), plants, animals, and/or any other resourcesappropriate for the online game. Transfer of resources between users maybe reflected through user inventories such that the transferor user'sinventory reduces an amount of the transferred resources that are addedto the transferee user.

Within the instance of the online game executed by the game engine 124,awards may be distributed to players. The distributed awards may inducechanges to the online game state or other game related effects that makeother goals easier to complete. Awards may be divided into awards thataffect gameplay and those that are extra-game consequences, typicallywinning the game or winning a bet based on the game. The distributedawards may be redeemed and/or accessed within online game. Awards thatcan be redeemed and/or accessed within the online game, or in-gameawards, may include, for example, improved or new abilities, improvedrankings or levels, virtual items, new player characters, virtualcurrency, redeemable services within the game space, and/or other typeof Awards.

Within the instance of the online game executed by game engine 124,events may be implemented for participation by the players. Typically,an event implemented in the online game may include one or more goals,objectives, targets, preset achievements (e.g., player levels), and/orother types of agenda for the players to achieve. The event may specifyone or more locations within the online game the event is to take place;an event period; one or more player criteria the event requiresparticipating players to have; one or more in-game actions involved inthe event; one or more resources required for participation in theevent; and/or any other event specifics. For example, by way ofillustration, an event may be implemented in the online game for playersto reach a production goal, e.g., to produce 1000 pieces lumber withinthe next hour. As another example, a racing event may be implemented inthe online game such that top 12 ranked players are invited to the eventto compete in a virtual car race at a selected race track in the onlinegame. Still as another example, a tournament event may be implemented inthe online game such that teams of players may compete against eachother in the tournament until a winner is determined. Other examples ofevents that may be implemented in the online game are contemplated.Awards may be distributed to players at the end of a given event in theonline game. For example, a virtual item, virtual currency, newabilities, new skills, and/or certain amount of points in the onlinegame may be distributed to participating players who have achievedcertain results at the end of given event. For example, the first 10players that have reached certain ranks in the online game during anevent period may be awarded with a highly demanded virtual item usablein the online game.

The event controller 126 may be configured to control implementation ofevents in the online game based on event information provided by users.This may involve obtaining the event information from an eventinformation database, determining one or more events are to be startedin the online game, implementing the one or more events in the onlinegame in accordance with the event information by updating the gameinterfaces on the client devices and/or updating one or more online gamedatabases, updating results of event(s) that is currently is in sessionin the online game, ending event(s) that has finished as indicated bythe event information, and/or any other operations. The event controller126 may be configured to execute scripts, routines, programs, and/or anyother type of directives or executables provided by provider,administrator, moderator, users, and/or any other entities related tothe virtual space. The scripts, routines, programs and/or any other typeof directives or executables that may be executed by the eventcontroller may be for implementing events in the online game,distributing and/or determining event awards to players within theonline game, and/or for causing the game engine 124 to perform any otheroperations.

By way of example, the event controller 126 may obtain the eventinformation regarding a given event to be implemented in the onlinegame, generate instructions to one or more other components of gameengine 124 (e.g., such as the messenger daemon 128 shown in FIG. 1 ) toimplement the given event in the online game, and/or any otheroperations. The events implemented by the event controller 126 mayinclude a tournament, a race, a competition, a campaign, a party, anexhibition, a match, and/or any other events facilitating playerparticipation and/or interaction in the online game. For example, asillustration, a production competition event may be executed by theevent controller 126 such that first 10 players that produce 5 knightswithin the next 3 hours will get a rare virtual item. As anotherexample, a tournament event may be implemented by the event controller126 such that the player who wins 5 car races in the online game in thenext 24 hours will get an award. Other examples are contemplated.

As will be discussed below, the event information based on which theevents may be implemented by event controller 126 may contain variousdetails regarding the individual events to be implemented in the onlinegame. By way of illustration, the event information regarding a givenevent may include information such as the start and end time of thegiven event within the online game, one or more requirements of thegiven event, update interval (e.g., how often the result of the event isto be updated), one or more awards to be distributed to the playersparticipating in the given event, one or more locations of the event inthe online game, one or more criteria for participating in the givenevent, one or more objectives of the given event, and/or any other eventinformation. Below is one example of event information used in oneembodiment for controlling implementation of an event in the online gamein accordance with the present disclosure.

{ “_id” : ObjectId(“52b2242b7e0877805197bb6e”), // event id “countries”: { // countries this event is available “AD” : true, “AE” : true, “AF”: true ... }, “date_conditions” : [ // start and end dates { “name” :“start”, “value” : “2013-12-18 14:43:00”, “value2” :“America/Vancouver”, “or” : false, “guid” :“bf05cf99-9f16-333e-5dc7-87b1d3d7ce62” }, { “name” : “end”, “value” :“2013-12-21 14:43:00”, “value2” : “America/Vancouver”, “or” : false,“guid” : “ca5cf7f7-29b9-d47d-9205-d18aa8f1be9a” } ], “enabled” : true,“ended” : false, “interval” : 3600, // interval of when this event's“msgTemplates” : [ // custom message template { “name” :“customStartEventMsg”, “params” : { “body” : { “en” : “This is themessage content” }, “subject” : { “en” : “Start Message” }, “title” : {“en” : “Title” }, “sendAt” : null }, “type” : “start-all”, // messagetype, send at start “sent” : true } ], “name” : “Click To Enter Name”,// Name of event “rewardSystems” : [ { “name” : “”, // reward systemtype “rewards” : [ { “boxes” : [ // boxes to hold items { “items” : [ {“data” : null, “quantity” : 1, “type” : “hc” } ] } ], “interval” : 0, //parameters the event uses “max” : 0, “min” : 0, “score” : 5, “spent” : 0}, { “boxes” : [ { “items” : [ { “data” : null, “quantity” : 1, “type” :“sc” } ] } ], “interval” : 0, “max” : 0, “min” : 0, “score” : 10,“spent” : 0 }, { “boxes” : [ // there are two boxes here { “items” : [// this box has two items { “data” : null, “quantity” : 10, “type” :“hc” }, { “data” : null, “quantity” : 5, “type” : “sc” } ] }, { “items”: [ { “data” : null, “name” : “car_name”, “quantity” : 1, “type” : “inv”} ] } ], “interval” : 0, “max” : 0, “min” : 0, “score” : 100, “spent” :0 } ], “type” : “milestone_instant” // the reward system type } ], “sc”: { // this event is a fast tournament “cars” : { “acura_integra_typer”: true, “acura_rsx_types_2006” : true, “bmw_1m_coupe” : true... },“multipliers” : { “cars” : { “val” : 3 }, “performance_upgrades” : {“val” : 2 }, “races” : { “val” : 2 }, “visual_upgrades” : { “val” : 3 }}, “racemodes” : { “daily” : true, “ladder” : true }, “racetypes” : {“drag” : true, “drift” : true } }, “started” : true, “state” :“Running”, // state that the event is in “subtype” : “xp”, // type andsubtypes of this event “type” : “tournaments” }

In some implementations, the event information regarding a given eventmay include information indicating a corresponding event handler forimplement the given event in the online game. Such an event handler mayinclude a block or blocks of script code that can be executed by thegame engine 124 shown in FIG. 1 . In some implementations, the eventinformation regarding the given event may contain such an event handler,i.e., the block of code representing the event handler, which may beinvoked by the event controller 126. In some implementations, the eventinformation regarding the given event may include information indicatinga location or locations where the event handler for the given event maybe invoked by the event controller 126 for implementing the given eventin the online game. By way illustration, while the event controller 126may be configured to execute general event functions such as start orend an event in accordance with the start and end time specified by theevent information regarding the given event, or to update an eventresult in accordance with update interval specified in the eventinformation, the event handler for the given event may be configured toexecute event functions that are specific to the given event, and/or tomanage the results of the given event.

For example, without limitation, a race event handler may be created toimplement event functionality specific to the race event such as rankcalculation of the race event, reporting player performance metricsafter each race in the race event, determine specific awards fordistribution to the participating players based on the result of theevent and/or any other functionality specific to the race event; aproduction competition event handler may be created to execute eventfunctionality specific to the production competition such as productionaccounting of the individual players during the production competitionevent. Other examples are contemplated.

FIG. 2 is an exemplary block diagram illustrating event controller 126may be configured to invoke an event handler for a corresponding eventto be implemented in the online game. As shown, the event controller 126may load event information 202 regarding a given event forimplementation of the given event in the online game. An example of theevent information 202 used in one embodiment in accordance with thepresent disclosure is described above. As explained above, the eventinformation 202 may include information indicating an event handler 204for implementing the given event in the online game. As explained above,the event controller 126 may be configured to execute one or moregeneral event functions for implementing the given event such asannouncing the given event in the online game in accordance with theevent period information specified in the event information 202; and theevent handler 204 may be invoked by the event controller 126 t0 executefunctions specific to the given event such as calculating player ranksin the event, determining event result(s), and/or any other eventfunction(s) specific to the given event. As shown, the event controller126 and the event handler 204 for the given event may be configured toeffectuate updates to game interfaces 206 on the individual clientdevices 104. For example, the event controller 126 may cause anotification of general event information to players on the clientdevices 104, and the event handler 204 may cause an update of eventresult(s) to be presented to the players on the client devices 104. Itshould be understood the division as to the functions to be executed bythe event controller 126 and the event handler 204 may be howeverdesired by the provider, administrator, moderator, and/or any otherentities related to the online game. It is contemplated in someimplementations, the event handler 206 may be delegated to execute somefunctions general to event implementation in the online game, and insome implementations, the event controller 126 may be configured toexecute some functions specific to implementation of the given event inthe online game.

By way of example, without limitation, the event controller 126 may beconfigured to retrieve event information 202 regarding a race event tobe started at a specific point of time, e.g., T, in the online game, andto be ended at time T+t in the online game. The event information mayspecify the result of the race event is to be updated every hour duringthe event period. The event information 202 may specify a location of arace event handler 204 may be used by the event controller 126 to startthe race event, and/or to update the results of the race event forpresentation in the game interface 206 provided on client device 104. Attime T, the event controller 126 may start the race event by invokingthe race event handler, which may instigate a specific race event setuproutine in the online game. Once the race event is started at time T,the event controller 126 may update the result of the race event onceevery hour by invoking the specific race update event routine providedby the race event handler.

Returning to FIG. 1 , the messenger daemon 128 may be configured totransmit to client devices 104 messages regarding the events implementedby the event controller 126. The messages transmitted by the messengerdaemon 128 may include in-game notifications, external electronicmessages (emails), voice call/mails, video notifications, audionotification, taptic notifications and/or any other types of messages.This may involve obtaining addressable identifications associated withthe client devices 104 such as machine names, IP addresses, emailaddresses, device addresses (e.g., MAC), and/or any other type ofaddressable identification associated with the client devices. In someimplementations, one or more message templates may be predetermined bythe provider, administrator, moderator, and/or any other entitiesrelated to the online game and may be obtained by the messenger daemon128, and may be used by the messenger daemon 128 to prepare messages fortransmission to the users. For example, a template event announcementmessage may be preset by an administrator of the online game thatincludes generic information indicating an event is to be started in theonline game. The messenger daemon 128 may obtain such an eventannouncement message template and prepare messages to be transmitted toclient devices 104 announcing a given event is about to start by fillingin the announcement message template with event information specific tothat given event as obtained by the event controller 126.

In some implementations, the messenger daemon 128 may receiveinstructions from the event controller 126 to transmit messagesregarding a specific event implemented by the event controller 126. Forexample, the messenger daemon 128 may receive an event announcementrequest from the event controller 126, and the received request mayinclude the announcement message the event controller 126 requests themessenger daemon 128 to transmit to the client devices 104. In thatexample, the messenger daemon 128 may extract the event announcementmessage from the event announcement request and transmit it to theclient devices 104. In some implementations, the event controller 126may be configured to request the messenger daemon 128 once in everycertain period, for example—every hour, to transmit event updatemessages to the client devices 104. The event update messages mayinclude information indicating the progress of the event in the onlinegame, current player rankings in the event, one or more highlights thathave taken place in the event, and/or any other event updateinformation.

The delivery daemon 130 may be configured to determine and/or distributeawards for the players participating in the events implemented by theevent controller 126. This may involve instantiating awards ofcorresponding award types, distributing the instances of the awards tothe inventory of players, recording the awards that have beendistributed to the players, and/or any other operations. In someexamples, this may involve dynamically obtaining for a given player fora given rank at the end of the event period; and distributing an awardto the given player's inventory based on the given rank. For example, ina case where a given player achieves a fourth place rank at the end ofthe event period, an award may be distributed to the player's inventorybased on the rank achieved by the given player; and, by comparison, ifthe given player achieves a second place rank at the end of that eventperiod, a different award may be distributed to the given player by thedelivery daemon 130 for awarding the given player achieving the secondplace rank in the event; and so on. In some examples, the awarddistributed to the player inventories by the delivery daemon 130 may bein accordance with one or more award tables, conversion tables, and/orany other award schemes predetermined by the provider, administrator,moderator, and/or any other entities related to the online game. Forexample, an award table may be predetermined by the provider of theonline game to specify different Awards for the first place rank, secondplace rank, third place rank, and so on.

In some implementations, the delivery daemon 130 may determine and/ordistribute awards to individual players based on award informationregarding individual types of awards, which may be obtained from anevent information database, a game database, and/or any kind ofelectronic storage related to the online game. The award informationregarding a given type of award may specify information including name,quantity, time and/or frequency of distribution, graphicalrepresentation, and/or any other award information for distributinginstances of awards of the given award type to players within the onlinegame. By way of illustration, award information regarding a rare virtualitem may specify the name of the award (e.g., medal of honor), thequantity of the virtual item distributed as the award (e.g., one),graphical representation of the award (e.g., a piece of art representinga medal), and/or any other information. The delivery daemon 130 mayobtain such award information and instantiate instances of the awards inaccordance with the award information.

In some implementations, the award information regarding a given type ofaward may include information indicating a corresponding award handler.Such an award handler may include a block or blocks of script code thatmay be executed by the game engine 124. For example, the award handlermay be used by the delivery daemon 130 to control award determinationand/or distribution of the instances of the award of the given type. Forexample, an award handler of mystery box award type may be configured toopen the mystery box and perform the stochastic distribution of themystery box after it is awarded to the user. As another example, anaward handler of a Gacha spin tokens may be configured to deposit theawarded Gacha spin tokens into a Gacha box for a player in the onlinegame after the Gacha spin tokens are awarded to the player. Still asanother example, an award handler of a resource hold limit may beconfigured to increase the limit the player may hold his/her resourcesafter an award to increase resource hold limit is awarded to the player.Yet as another example, an award handler of a player level increaseaward may be configured to increase the player level in the online gameafter an award of level increase is awarded to the player in the onlinegame. Other examples are contemplated.

Below is an exemplary award handler (Redeemer) configured to handleaward (elite car) distribution to players within the online game.

var Redeemer = require(‘lib/redeemer/redeemer’); var JobManager =require(‘framework/jobmanager’); var PushCall =require(‘helpers/pushcall’); function EliteCarRedeemer( typeName,displayName, options ) { Redeemer.call( this, typeName, displayName,options ); var self = this; self.carsCollection =require(‘models/collection’).create(options.db, ‘cars’); self.pushCall =new PushCall(options.config); self.gacha_controller = null; }require(‘util’).inherits(EliteCarRedeemer,Redeemer);EliteCarRedeemer.prototype.parseData = function( data, cb ) { var self =this; var car = “”; var prestige = “”; var prestigeclass = −1; var tid =“”; var filterTag = “”; if( data.length > 0 ) { var firstBreakdown =data.split( ‘@’ ); if( firstBreakdown.length == 2 ){ var secondBreakdown= firstBreakdown[0].split( ‘:’ ); car = secondBreakdown[ 0 ] if(secondBreakdown.length == 2 ) {  prestige = secondBreakdown[ 1 ]; prestigeclass = parseInt( prestige.split(‘_’).pop( ) )  if( isNaN(prestigeclass ) == false ) { prestigeclass −= 1;  }  else { prestige =“”; prestigeclass = −1;  } } tid = firstBreakdown[ 1 ]; filterTag =‘elite_’ + car + ‘_’ + tid; } } return cb( car, prestige, prestigeclass,tid, filterTag ); } EliteCarRedeemer.prototype.redeem = function( uid,item, reason, options, cb ){ var self = this; if( self.gacha_controller== null ){ self.gacha_controller =require(‘lib/gacha/gacha_controller’).create( self.options ); }self.parseData( item.type, function( carName, prestige, prestigeclass,tid, filterTag ){ if( ( carName.length > 0 ) && ( tid.length > 0 ) ) {var giftcar = null; for (var i in self.config.cars.recipes) { var car =self.config.cars.recipes[i]; if( car.n == carName ) { giftcar = car;break; } } if( giftcar != null ) { giftcar.tid = tid; //Magic numbersfor hard coding the elite visual upgrades giftcar.vu[0] = 2129742007;giftcar.vu[3] = 1903376227; if( ( prestige != null ) && (prestige.length > 0 ) && ( prestigeclass >= 0 ) ) { giftcar.pc =prestige; giftcar.c = prestigeclass; } var cars = [ ]; for( var j = 0; j< quantity; ++j ) { cars.push( { q: giftcar.q, r: giftcar, uid: uid, s:Math.ceil(Math.random( ) * 1000) } var jm = new JobManager( );jm.forEach( cars, function( c,next ){ self.carsCollection.insert( c,function( err, result ){ setImmediate( function( ) { next( err ); });}); }, function(err){ self.pushCall.publish( uid.toString( ), {component:‘CarManager’, message:‘refresh’self.gacha_controller.addFilterTag( uid, filterTag, 1, function( err,result ){ if( err != null ){ console.error( “Problem applying the filtertag”, filterTag, “to uid:” return cb( err, { } ); } var prize = { };prize.type = ‘elite’; prize.data = carName; prize.quantity =item.quantity; return cb( null, prize ); }); }); } else{ var err =‘Invalid car ’ + carName + ‘ for user ’ + uid; return cb( err, null ); }} else { return cb( “CarName and tournament must be specified for eliteredeemer in the format <carName>@<} }); };EliteCarRedeemer.prototype.filter = function( data, cb ){ var self =this; self.parseData( data, function( carName, prestige, prestigeclass,tid, filterTag ){ var query = { }; query[ ‘filtertags.’ + filterTag ] ={ $exists: true }; var filter = { }; filter.collection = ‘gacha_users’;filter.query = query; return cb( null, filter ); }); }module.exports.init = function( typeName, options ){ var displayName =“Elite Car”; console.log( typeName, “- Initializing”, displayName,“Redeemer” ); return new EliteCarRedeemer( typeName, displayName,options ); };

FIG. 3 is an exemplary block diagram illustrating delivery daemon may beconfigured to invoke award handler for a corresponding award. As shown,in some examples, as in this example, the delivery daemon 130 mayinclude an award redemption controller 304. The award redemptioncontroller 304 may be configured to control invocation of individualaward handlers for determining and/or distributing awards to players inthe online game. The award redemption controller 304 may be configuredto execute scripts, routines, programs, and/or any other type ofdirectives or executables provided by provider, administrator,moderator, users, and/or any other entities related to the online game.The scripts, routines, programs and/or any other type of directives orexecutables that may be executed by the award redemption controller 304may be for automatically determining, distributing instances of awardsin the online game, and/or for causing the award redemption controller304 to perform any other operations.

As shown FIG. 1 , the delivery daemon 130 may be configured to load theaward information 302 regarding individual awards. As described above,the award information 302 for a given award may include informationindicating the corresponding award handler to be invoked by the deliverydaemon 130, for example via the award redemption controller 304 asshown. As also shown, the delivery daemon 130 may be configured toupdate a prize database 308 in this example. The prize database 308 maybe configured to store information regarding award distribution to theplayers, such as when an award is distributed to which player, aquantity of the award distributed to that player, and/or any otherinformation.

The delivery daemon 130 may be invoked by the event controller 126 whenimplementing a given event to distribute one or more event awards toinventories of the players based on their rankings at the end of theevent. For example, the event controller 126 may invoke the deliverydaemon 130 at the end of an event executed by the event controller 16 tohave the delivery daemon 130 distribute one or more event awards to topranked players in the event. In response to such a request from theevent controller 126, the delivery daemon 130 may distribute the eventawards.

FIG. 4 is an exemplary block diagram illustrating event controller 126may be configured to invoke the event handlers 212 and delivery daemon130. It will be described with reference to FIGS. 1-3 . As shown in thisexample, a game interface 406 may be implemented and provided to a givenclient device 104. As shown, the game interface may be implemented withupdates from the event information database 402, the player rankingdatabase 404, the prize database 30, and/or any other components. Asdescribed above, the game interface 406 may be implemented by the gameengine 124 shown in FIG. 1 . As also shown, the event informationdatabase 402 may be configured to store event information records, suchas the event information 202 shown in FIG. 2 . The event information 202may be obtained by the event controller 126, which may implement eventsin the online game in accordance with the event information 202. Asdescribed above, the event information 202 may include informationindicating corresponding event handlers 204 may be invoked by the eventcontroller 126. As also shown, the event controller 126 may beconfigured to instruct the messenger daemon 128 to transmit messages toclient devices 104 and invoking delivery daemon 130 to determine and/ordistribute awards to players within the online game.

Returning to FIG. 1 , the server 102 may communicate with the server120. The communication between the servers 102 and 120 may includecommunications of event information and/or award information. The server102 may comprise a processor 108 configured to execute machine-readableinstructions. As shown, the processor 108 may comprise an eventinterface component, an event management component, an award interfacecomponent 112, an event management component 114, an award interfacecomponent 116, an award management component 118, and/or any othercomponents.

The event interface component may be configured to provide an interfaceon a client device 104 enabling a player associated with the clientdevice 104 to provide event information 202, which may be used by theevent controller 126 to implement events in the online game. FIG. 5illustrates one example an interface that may be provided on a clientdevice 104 for providing the event information. It will be describedwith reference to FIG. 1 . As shown in this example, an interface 500may be implemented on a client device 104. The interface 500 may enablea user, for example an administrator, a moderator, a programmer, adeveloper and/or any other entities related to the online game toprovide event information, such as the event information 202 shown inFIG. 2 , so that corresponding events may be implemented in the onlinegame. In this example, the interface 500 is shown to enable the user toprovide various information regarding a given event (e.g., event #1 asshown) for implementation in the online game. As shown, an input box maybe provided in the interface to enable the user to input a name for theevent; a selection switch to enable the user to indicate whether theevent should be enabled in the online game (a selection of yes, asshown, in this example, indicates the event should be implemented—e.g.,by the event controller 126—in the online game and a selection of noindicates the event should not implemented); and a selection switch toenable the user to indicate whether the event should always enabled inthe online game (a selection of yes indicates the event controller 126should always implement the given event in the online game, and aselection of no indicates the event controller 126 should not alwaysimplement the given event); input fields enabling the user to input adate and/or time when the event should be implemented in the onlinegame, a date and/or time when the event should be terminated in theonline game, a frequency at which the event should be implemented withinthe online game. As also shown, the interface 500 may include inputfields to enable the user to generate one or more sub-type of events tobe implemented during the given event. For example, a first sub-eventmay be implemented during the given event. The sub-type event creationmay be facilitated by an interface similar to interface 500. As shown,multiple sub-events may be during the given event. As still shown, inputfields may be provided in the interface 500 to enable the user to createone or more messages to be communicated to the players in connectionwith the given event. For example, an announcement message may becreated by the user such that an announcement of the commencement of theevent will be made to the players within the online game when the givenevent is implemented in the online game. As described above, themessage(s) created by the interface 500 may be transmitted by messengerdaemon 130 to the client devices 104. As still shown, the interface 500may enable the user to create one or more filters for the given event.The filers may serve as event criteria for implementing the event. Forexample, as described above, a filter may be created for the given eventsuch that only players with certain rank in the online game mayparticipate in the given event. As another example, a filter may becreated for the given event such only players from certain geographicregion may participate in the event. Still as another example, a filtermay be created for the given event such that players from certainalliances may participate in the given event. As still shown, theinterface 500 may enable the user to create one or more awards fordistribution to the participating players in connection with the givenevent. It should be understood the various event information shown inFIG. 5 as being provided by the user is merely illustrative and is notintended to be limiting. In some other examples, more or less eventinformation may be provided by the user through the interface 500.

Returning to FIG. 1 , the event information management component 114 maybe configured to manage event information provided by the users of theonline game. Managing event information by the event informationmanagement component may include storing, retrieving, updating,deleting, backing up the event information provided by the users, and/orany other operations. For example, the event information managementcomponent 114 may be configured to retrieve event information inresponse to a request from the event controller 126 as described above.

The award interface component 116 may be configured to provide awardinterfaces on client devices 104 to enable users to provide informationregarding awards to be distributed within the online game. FIG. 6illustrates an exemplary interface that may be provided on a clientdevice 104 to enable a user to provide event award information for anevent. It will be described with reference to FIG. 5 . As shown, anaward interface 600 may be provided on the client device 104 to enable auser to create an award for an event implemented in the online game. Forexample, the award interface 600 may be provided on the client device104 after the user selects to create an award for distribution in theevent interface 500. As shown, the award interface 600 may enable theuser to provide a name of the award to be distributed to theparticipating players of the event, a description of the award, anobjectID indicating a corresponding award type (e.g., virtual item,points, level, skill and/or any other type of award type), a quantity ofthe award, one or more requirements for distributing the award. Asshown, the award requirements may include a player ranking requirementindicating the award is distributed only to players that have breached acertain event rank at the end of the event period of the event, a userlevel requirement indicating the award is distributed only to playersthat have breached a certain user level in the online game at the end ofthe event period of the event, and/or any other award requirements. Itshould be understood the various award information shown in FIG. 6 asbeing provided by the user is merely illustrative and is not intended tobe limiting. In some other examples, more or less award information maybe provided by the user through the interface 600.

Returning to FIG. 1 , the award information management component 118 maybe configured to manage award information provided by the users of theonline game. Managing award information by the award informationmanagement component 118 may include storing, retrieving, updating,deleting, backing up the award information provided by the users, and/orany other operations. For example, the award information managementcomponent 118 may be configured to retrieve award information inresponse to a request from the even controller 126 and/or the deliverydaemon 130 as described above.

The servers 102 and 122, client computing platforms 104, and/or externalresources 106 may be operatively linked via one or more electroniccommunication links. For example, such electronic communication linksmay be established, at least in part, via a network such as the Internetand/or other networks. It will be appreciated that this is not intendedto be limiting, and that the scope of this disclosure includesimplementations in which servers 102, client computing platforms 104,and/or external resources 106 may be operatively linked via some othercommunication media.

A given client computing platform 104 may include one or more processorsconfigured to execute computer program components. The computer programcomponents may be configured to enable an expert or user associated withthe given client computing platform 104 to interface with system 100and/or external resources 106, and/or provide other functionalityattributed herein to client computing platforms 104. By way ofnon-limiting example, the given client computing platform 104 mayinclude one or more of a desktop computer, a laptop computer, a handheldcomputer, a tablet computing platform, a NetBook, a Smartphone, a gamingconsole, and/or other computing platforms.

The external resources 106 may include sources of information, hostsand/or providers of virtual environments outside of system 100, externalentities participating with system 100, and/or other resources. In someimplementations, some or all of the functionality attributed herein toexternal resources 106 may be provided by resources included in system100.

The server 102 may include electronic storage 110, one or moreprocessors 108, and/or other components. The server 102 may includecommunication lines or ports to enable the exchange of information witha network and/or other computing platforms. Illustration of server 102in FIG. 1 is not intended to be limiting. The server 102 may include aplurality of hardware, software, and/or firmware components operatingtogether to provide the functionality attributed herein to server 102.For example, server 102 may be implemented by a cloud of computingplatforms operating together as server 102.

Electronic storage 110 may comprise electronic storage media thatelectronically stores information. The electronic storage media ofelectronic storage 110 may include one or both of system storage that isprovided integrally (i.e., substantially non-removable) with server 102and/or removable storage that is removably connectable to server 102via, for example, a port (e.g., a USB port, a FireWire port, etc.) or adrive (e.g., a disk drive, etc.). Electronic storage 110 may include oneor more of optically readable storage media (e.g., optical disks, etc.),magnetically readable storage media (e.g., magnetic tape, magnetic harddrive, floppy drive, etc.), electrical charge-based storage media (e.g.,EEPROM, RAM, etc.), solid-state storage media (e.g., flash drive, etc.),and/or other electronically readable storage media. The electronicstorage 110 may include one or more virtual storage resources (e.g.,cloud storage, a virtual private network, and/or other virtual storageresources). Electronic storage 110 may store software algorithms,information determined by processor 108, information received fromserver 102, information received from client computing platforms 104,and/or other information that enables server 102 to function asdescribed herein.

Processor(s) 108 and processor(s) 122 are configured to provideinformation processing capabilities in server 102 and server 120,respectively. As such, processor 108 and/or processor 122 may includeone or more of a digital processor, an analog processor, a digitalcircuit designed to process information, an analog circuit designed toprocess information, a state machine, and/or other mechanisms forelectronically processing information. Although processor 108 andprocessor 122 is shown in FIG. 1 as a single entity, this is forillustrative purposes only. In some implementations, processor 108 mayinclude a plurality of processing units. These processing units may bephysically located within the same device, or processor 108 andprocessor 122 may represent processing functionality of a plurality ofdevices operating in coordination. The processor 108 may be configuredto execute components 112, 114, 116 and 118. Processor 108 may beconfigured to execute components 112, 114, 116 and 118 by software;hardware; firmware; some combination of software, hardware, and/orfirmware; and/or other mechanisms for configuring processingcapabilities of processor 108. The processor 122 may be configured toexecute components 124 126, 128 and 130. Processor 122 may be configuredto execute components 124 126, 128 and 130 by software; hardware;firmware; some combination of software, hardware, and/or firmware;and/or other mechanisms for configuring processing capabilities ofprocessor 108.

It should be appreciated that although components 112, 114, 116, 118,124 126, 128 and 130 are illustrated in FIG. 1 as being co-locatedwithin a single processing unit, in implementations in which processor108 includes multiple processing units, one or more of components 112,114, 116, 118, 124 126, 128 and 130 may be located remotely from theother components. The description of the functionality provided by thedifferent components 112, 114, 116, 118, 124 126, 128 and 130 describedbelow is for illustrative purposes, and is not intended to be limiting,as any of components 112, 114, 116, 118, 124 126, 128 and 130 mayprovide more or less functionality than is described. For example, oneor more of components 112, 114, 116, 118, 124 126, 128 and 130 may beeliminated, and some or all of its functionality may be provided byother ones of components 112, 114, 116, 118, 124 126, 128 and 130. Asanother example, processor 108 may be configured to execute one or moreadditional components that may perform some or all of the functionalityattributed below to one of components 112, 114, 116, 118, 124 126, 128and 130.

FIG. 7 illustrates one exemplary method 700 for facilitatingimplementation of events within an online game in accordance with thedisclosure in accordance with the disclosure. The operations of method700 presented below are intended to be illustrative. In someembodiments, method 700 may be accomplished with one or more additionaloperations not described, and/or without one or more of the operationsdiscussed. Additionally, the order in which the operations of method 700are illustrated in FIG. 7 and described below is not intended to belimiting.

In some embodiments, method 700 may be implemented in one or moreprocessing devices (e.g., a digital processor, an analog processor, adigital circuit designed to process information, an analog circuitdesigned to process information, a state machine, and/or othermechanisms for electronically processing information). The one or moreprocessing devices may include one or more devices executing some or allof the operations of method 700 in response to instructions storedelectronically on an electronic storage medium. The one or moreprocessing devices may include one or more devices configured throughhardware, firmware, and/or software to be specifically designed forexecution of one or more of the operations of method 700.

At an operation 702, an instance of an online game may be executed. Insome implementations, operation 702 may be performed by a game enginethe same as or similar to game engine 124 (shown in FIG. 1 and describedherein).

At an operation 704, award information may be received from the users ofthe online game hosted in operation 702. The award information receivedat operation 704 may define types of in-game awards to be distributed toplayers within the online game. For example, award information forawarding a virtual item to players within the online game may beprovided by a user of the online game, which may include administrator,moderator, programming, developer, and/or any other entities related tothe online game. In some implementations, operation 704 may be performedby an award information management component the same as or similar toaward information management component 118 (shown in FIG. 1 anddescribed herein).

At an operation 706, award handlers corresponding to the awardinformation received at operation 704 may be stored. In someimplementations, the award information regarding a given type of awardas received at operation 704 may include information indicating acorresponding award handler. The corresponding award handler may be usedby a game engine to control award determination and/or delivery forinstances of the award of the given type in the instance of the onlinegame executed in at operation 706. For example, an award handler ofmystery box award type may be configured to open the mystery box andperform the stochastic distribution of the mystery box after it isawarded to the user. Operation 706 may be performed by an awardinformation management component the same as or similar to awardinformation management component 118 (shown in FIG. 1 and describedherein).

At an operation 708, event information may be received from players forimplementing events in the online game. The event information receivedfrom the players at operation 708 may include event award informationindicating instance(s) of an award of a given award type defined by theaward information received at operation 706. In some implementations,operation 708 may be performed by an event information managementcomponent the same as or similar to event information managementcomponent 114 (shown in FIG. 1 and described herein).

At an operation 710, an event may be implemented in accordance with theevent information received at operation 708. In some implementations,operation 708 may be performed by event controller the same as orsimilar to event controller 126 (shown in FIG. 1 and described herein).

At an operation 712, one or more awards may be distributed toparticipating players of the event implemented at operation 710 inaccordance with the event information received at operation 708. In someimplementations, operation 712 may be performed by a delivery daemon thesame as or similar to delivery daemon 130 (shown in FIG. 1 and describedherein).

Although the present technology has been described in detail for thepurpose of illustration based on what is currently considered to be themost practical and preferred implementations, it is to be understoodthat such detail is solely for that purpose and that the technology isnot limited to the disclosed implementations, but, on the contrary, isintended to cover modifications and equivalent arrangements that arewithin the spirit and scope of the appended claims. For example, it isto be understood that the present technology contemplates that, to theextent possible, one or more features of any implementation can becombined with one or more features of any other implementation.

1. An online game system configured to host an online game that ispresented to individual client devices, the system comprising one ormore physical processors configured by machine-readable instructions to:store, in electronic storage, award handlers as blocks of executablecode, wherein individual ones of the award handlers correspond toindividual types of in-game awards, the individual ones of the awardhandlers being configured to distribute instances of in-game awards tothe players, wherein the award handlers include a first award handlerand a second award handler, wherein the first award handler isconfigured to distribute a first award, wherein the second award handleris different from the first award handler, and wherein the second awardhandler is configured to distribute a second award; store, in theelectronic storage, a first event handler, wherein the first eventhandler includes machine-readable instructions to implement a firstevent in the online game, wherein the first event handler includesinformation indicating the first event is available for participationonly by players that meet a first player requirement, wherein the firstplayer requirement includes one or both of a player ranking requirementand/or a user level requirement; and implement, by the one or morephysical processors, the first event handler, wherein implementing thefirst event handler in the online game includes: invoking, by the one ormore physical processors, the first award handler to distribute thefirst award in accordance with a result of the first event.
 2. An onlinegame system configured to host an online game that is presented toindividual client devices, the system comprising one or more physicalprocessors configured by machine-readable instructions to: store, inelectronic storage, award handlers as blocks of executable code, whereinindividual ones of the award handlers correspond to individual types ofin-game awards, the individual ones of the award handlers beingconfigured to distribute instances of in-game awards to the players,wherein the award handlers include a first award handler and a secondaward handler, wherein the first award handler is configured todistribute a first award, wherein the second award handler is differentfrom the first award handler, and wherein the second award handler isconfigured to distribute a second award; store, in the electronicstorage, a first event handler, wherein the first event handler includesmachine-readable instructions to implement a first event in the onlinegame, wherein the first event handler includes information indicatingthe first event is available for participation only by players that meeta first player requirement, wherein the first player requirementincludes one or both of a player level requirement and/or in-gameattributes; and implement, by the one or more physical processors, thefirst event handler, wherein implementing the first event handler in theonline game includes: invoking, by the one or more physical processors,the first award handler to distribute the first award in accordance witha result of the first event.
 3. The online game system of claim 1,wherein the first event handler includes one or more award requirementssuch that the first award is distributed to player inventories of theplayers in accordance with the one or more award requirements.
 4. Theonline game system of claim 3, wherein the one or more awardrequirements include a player ranking requirement indicating the firstaward is distributed only to players that have breached a certain eventrank at the end of the event period of the first event, and/or a userlevel requirement indicating the first award is distributed only playersthat have breached a certain user level in the online game at the end ofthe event period of the first event.
 5. The online game system of claim1, wherein the first event handler further includes first event periodinformation indicating a start time and/or an end time of the firstevent within the online game.
 6. The online game system of claim 5,wherein implementing the first event in the online game includesstarting the first event within the online game at the start time and/orstopping the first event within the online game at the end time.
 7. Theonline game system of claim 1, wherein implementing the first event inthe online game includes transmitting to the players one or moremessages announcing the first event starts at a start time and/or endsat an end time.
 8. The online game system of claim 1, whereinimplementing the first event in the online game includes determiningfirst event rankings for the participating players of the first event atthe end of the event period of the first event.
 9. The online gamesystem of claim 1, wherein implementing the first event in the onlinegame includes facilitating player participation in the first event inaccordance with the first player requirement.
 10. The online game systemof claim 1, wherein the first player requirement includes at least oneof a user skill requirement and/or a virtual currency requirement.
 11. Amethod for hosting an online game that is presented to individual clientdevices, the method being implemented in a physical processor configuredto execute machine-readable instructions, the method comprising:storing, in electronic storage, award handlers as blocks of executablecode, wherein individual ones of the award handlers correspond toindividual types of in-game awards, the individual ones of the awardhandlers being configured to distribute instances of in-game awards tothe players, wherein the award handlers include a first award handlerand a second award handler, wherein the first award handler isconfigured to distribute a first award, wherein the second award handleris different from the first award handler, and wherein the second awardhandler is configured to distribute a second award; storing, in theelectronic storage, a first event handler, wherein the first eventhandler includes machine-readable instructions to implement a firstevent in the online game, wherein the first event handler includesinformation indicating the first event is available for participationonly by players that meet a first player requirement, wherein the firstplayer requirement includes one or both of a player ranking requirementand/or a user level requirement; and implementing the first eventhandler, wherein implementing the first event handler in the online gameincludes: invoking the first award handler to distribute the first awardin accordance with a result of the first event.
 12. The method of claim11, wherein the first event handler includes one or more awardrequirements such that the first award is distributed to playerinventories of the players in accordance with the one or more awardrequirements.
 13. The method of claim 12, wherein the one or more awardrequirements include a player ranking requirement indicating the firstaward is distributed only to players that have breached a certain eventrank at the end of the event period of the first event, and/or a userlevel requirement indicating the first award is distributed only playersthat have breached a certain user level in the online game at the end ofthe event period of the first event.
 14. The method of claim 11, whereinthe first event handler further includes first event period informationindicating a start time and/or an end time of the first event within theonline game.
 15. The method of claim 14, wherein implementing the firstevent in the online game includes starting the first event within theonline game at the start time and/or stopping the first event within theonline game at the end time.
 16. The method of claim 11, whereinimplementing the first event in the online game includes transmitting tothe players one or more messages announcing the first event starts at astart time and/or ends at an end time.
 17. The method of claim 11,wherein implementing the first event in the online game includesdetermining first event rankings for the participating players of thefirst event at the end of the event period of the first event.
 18. Themethod of claim 11, wherein implementing the first event in the onlinegame includes facilitating player participation in the first event inaccordance with the first player requirement.
 19. The method of claim11, wherein the first player requirement includes at least one of a userskill requirement and/or a virtual currency requirement.